The present invention relates to synchronization of objects between object stores on two different computing devices. More particularly, the present invention relates to synchronization on mobile devices.
Mobile devices include a broad range of computing and communication devices that are small enough to be conveniently carried by a user. Examples of such devices include mobile phones, personal digital assistants, tablet PCs, and lap-top PCs.
While a wide variety of computing tasks and applications can be performed by such mobile devices, personal information managers (PIMs) are particularly well suited to mobile devices. PIMs typically comprise applications that enable the user of the mobile device to better manage scheduling and communications, and other such tasks. Some commonly available PIMs include scheduling and calendar programs, task lists, address books, and electronic mail (e-mail) programs. Some commonly commercially available PIMs are sold under the trademarks “MICROSOFT SCHEDULE+” and “MICROSOFT OUTLOOK” and are commercially available from Microsoft Corporation of Redmond, Wash.
In addition to PIMs, mobile devices may also run different types of applications, such as word processors, spread sheets, etc.
To provide users with as much freedom as possible, it is desirable to allow the user to access and change their application and PIM information from any device they choose. Thus, the user should be able to access their e-mail from a network terminal, a PDA, and a tablet PC.
However, allowing the user to access and change their information from any desired source means that the devices must be able to communicate with each other to indicate changes to the information. The process of two devices sharing changes in the application and/or PIM information is known as synchronization.
In general, synchronization is not a continuous process. In other words, a mobile device does not continually try to synchronize its data because that would waste limited wireless bandwidth and place an undue drain on the mobile device's battery. Instead, synchronization is performed periodically. In addition, since the mobile device is not always in use, it is wasteful to have a server or desktop computer periodically attempt to establish a connection with the mobile device to perform synchronization. Instead, the mobile device is responsible for establishing a connection to perform synchronization.
Because the mobile device does not know if information has changed on a server or desktop computer until the synchronization has begun, the mobile device must periodically poll the server or desktop to see if synchronization is needed. This polling wastes wireless bandwidth and battery usage.
Thus, a system is needed that allows mobile devices to determine when to synchronize without wasting wireless bandwidth or battery usage.
Some systems have provided notifications to mobile devices to indicate when Internet pages have changed. However, these devices simply shift the polling procedures onto another computer, which must access the Internet periodically to request the marked pages and to check to see if they have changed. Thus, an intermediary computing device is used to monitor the web pages. Such intermediary devices have not been used with synchronization data because access to synchronized data has been limited to the computing devices that actually share the data to minimize data corruption and to prevent unauthorized distribution of the synchronization data. As such, a notification system is needed that can be applied to synchronization data.